widget: Use g_type_add_class_private()
authorBenjamin Otte <otte@redhat.com>
Mon, 20 Jun 2011 11:58:10 +0000 (13:58 +0200)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 5 Jul 2011 20:08:01 +0000 (16:08 -0400)
It turns out that that funciton does indeed exist and my rant was just
outdated. Shame on me.

gtk/gtkwidget.c

index def8ab49151f9a8f97a203157e8de0f7ed5b6b2c..3e375f9a5acb38a912f91b5b51bd28ce447dcb25 100644 (file)
@@ -772,6 +772,8 @@ gtk_widget_get_type (void)
       widget_type = g_type_register_static (G_TYPE_INITIALLY_UNOWNED, "GtkWidget",
                                             &widget_info, G_TYPE_FLAG_ABSTRACT);
 
+      g_type_add_class_private (widget_type, sizeof (GtkWidgetClassPrivate));
+
       g_type_add_interface_static (widget_type, ATK_TYPE_IMPLEMENTOR,
                                    &accessibility_info) ;
       g_type_add_interface_static (widget_type, GTK_TYPE_BUILDABLE,
@@ -786,11 +788,7 @@ gtk_widget_base_class_init (gpointer g_class)
 {
   GtkWidgetClass *klass = g_class;
 
-  if (GTK_IS_WIDGET_CLASS (g_type_class_peek_parent (klass)))
-    klass->priv = g_slice_dup (GtkWidgetClassPrivate,
-                               GTK_WIDGET_CLASS (g_type_class_peek_parent (klass))->priv);
-  else
-    klass->priv = g_slice_new0 (GtkWidgetClassPrivate);
+  klass->priv = G_TYPE_CLASS_GET_PRIVATE (g_class, GTK_TYPE_WIDGET, GtkWidgetClassPrivate);
 }
 
 static void
@@ -3196,8 +3194,6 @@ gtk_widget_base_class_finalize (GtkWidgetClass *klass)
       g_param_spec_unref (pspec);
     }
   g_list_free (list);
-  
-  g_slice_free (GtkWidgetClassPrivate, klass->priv);
 }
 
 static void